import axios from 'axios'

// 创建axios实例
const instance = axios.create({
  // axios中请求配置有baseURL选项，表示请求URL公共部分
  // baseURL: 'http://47.100.94.241:4855',
  baseURL: '',
  headers: {
    'Content-Type': 'application/json;charset=UTF-8'
  },
  // 超时
  timeout: 20000
})

// 添加请求拦截器
instance.interceptors.request.use(
  function (config) {
    // 在发送请求之前做些什么
    // 判断浏览器缓存中单是否有token信息
    if (sessionStorage.getItem('userState')) {
      const userState = JSON.parse(sessionStorage.getItem('userState'))
      console.log('存储信息: ', userState.token)

      config.headers['token'] = userState.token
    }
    return config
  },
  function (error) {
    console.log('error', error)

    // 对请求错误做些什么
    return Promise.reject(error)
  }
)

// 添加响应拦截器
instance.interceptors.response.use(
  (res) => {
    if (res.status === 200) {
      return res.data
    } else {
      return Promise.reject(res)
    }
  },
  (error) => {
    console.log('响应', error.response.statusText)
    if (error.response.statusText === 'Internal Server Error') {
      ElNotification({
        title: '错误提示',
        message: '未知错误,请联系管理员喔~~',
        type: 'warning'
      })
    }

    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error)
  }
)

export default instance
